Cryptocurrency Technologies

Coursera course from Princeton University, here are some information and notes from the course.

Cryptographic Hash Functions

basic term:

  • takes any string of any size as input
  • fixed-size output (We’ll use 256 bits )
  • efficiently computable

Security properties:

  • collision-free
  • hiding
  • puzzle-friendly

collision-free

Definition

Nobody can find x and y such that:

x!=y and H(x) = H(y)

So that is what we call collision-free.

Actually collision do exist. But it merely be found ——that is guaranteed the work.

Application

If we know H(x) = H(y), it’s safe to assume that x = y. Hash function provide us with a efficient way to recognize the same things. The hash is small, which has only 256 bits, while the whole things might be really big.

Hiding

Definition

We want something like this:

Given H(x), it is infeasible to find x.

high min-entropy : the distribution is “very spread out”. If r is chosen from a probability distribution that has high min-entropy, then given H(r | x), it is infeasible to find x.

Application : Commitment

Commit to a value, reveal it later.

com = H(key | msg)

Hidding:

Given H(key | msg), infeasible to find msg.

Binding:

Infeasible to find msg != msg’ such that H(key | msg) == H(key | msg’)

Puzzle-friendly

for every possible output value y, if k is chosen from a distribution with high min-entropy, then it is infeasible to find x such that H(k | x) = y.

Application: Search puzzle

  1. given a “puzzle ID” id (from high min-entropy distrib), and a target set Y;
  2. try to find a “solution” x such that H(id | x) = y.

Add:

common hash function in shell

1
2
3
4
5
6
7
8
9
10
11
12
13
#md5
md5 [-pqrtx] [-s string] [files ...]
#more ways
echo "max"|md5
md5 <<< "max"

#sha-1 && sha-256
shasum -a 1 -t test
shasum -a 256 <<< "max"

#encode and decode function -> base64
base64 -D <<< "max" #decode
base64 <<< "max" #encode

bitcoin use sha256 as its hash function

Topic from Prof.Yuen

some keywords

Zero-knoledge proff approach

Linkable ring signature

Lighting network

IOTA

Byteball

Hdera/Hashgraph

monero’s limitation

RingCT 2.0

BulletRingCT